Skip to content


Representation and conversion of one wavefunction ABINIT data structures and their theoretical justifications

Notations and theoretical considerations

A Bloch wavefunction characterized by a wavevector is such that

where is periodic, that is

where is a vector of the real space lattice.

Representation by plane waves


For a spinor wavefunction, there is an additional variable, the spin that can take two values, that is (spin up) or (spin down). The following relations hold:

Properties of the wavefunctions (scalar case)

For ground-state wavefunctions, we have to solve the Schrödinger equation

where is the Hamiltonian operator, labels the state (or the band), is the eigenvalue.

As the wavevector labelling of an eigenstate comes from the property

in which can be replaced by where is any reciprocal space lattice vector, we can choose the wavefunctions at and to be equal, or to make a linear combination of wavefunctions with the same energy. This is a choice of gauge that does not affect the value of physical observables. In what follows we prefer to work with the gauge

to keep the notation as simple as possible,

The time-reversal symmetry (non-magnetic case) of the Hamiltonian gives the following relation

For the wavevectors that are half a reciprocal lattice vector , there is a special relationship between the Fourier coefficients of the wavefunction:

That is, coefficients at and are related. This will allow to decrease by a factor of 2 the storage space for these specific points and accelerate CPU-intensive parts such as the application of the non-local part and the Fourier transform.

Properties of the wavefunctions (spinor case)

One must distinguish two classes of Hamiltonians:

  1. the Hamiltonian is spin-diagonal
  2. the Hamiltonian mixes the spin components

In the first class, one finds usual non-spin-polarized, non-spin-orbit Hamiltonians, in which case the spin up-spin up and spin down-spin down parts of the Hamiltonian are equal, as well as spin-polarized Hamiltonian when the magnetic field varies in strength but not in direction. In the second class, one finds Hamiltonians that include the spin-orbit splitting as well as non-collinear spin systems.

In the first class, the wavefunctions can be made entirely of either spin-up components or spin-down components, and treated independently of those made of opposite spin. This corresponds to nsppol = 2. In the second class, one must stay with spinor wavefunctions. This corresponds to nspinor = 2.

These two classes are mutually exclusive. The possibilities are thus:

nsppol nspinor wavefunction type
1 1 scalar wavefunctions
2 1 spin-polarized wavefunctions
1 2 spinor wavefunctions

The inclusion of spin-orbit coupling in the Hamiltonian requires nspinor = 2

Plane wave basis set sphere

In order to avoid dealing with an infinite number of plane waves to represent Bloch wavefunctions, one selects those with a kinetic energy lower than some cutoff energy . The set of allowed vectors will be noted by

The kinetic energy cutoff is computed from the input variables ecut and dilatmx to give the effective value:

For special -points satisfying the condition , not all coefficients must be stored. A specific storage mode, governed by the input variable istwfk has been introduced for the following points:

For these points, the number of vectors to be taken into account, is decreased by about a factor of 2. For the ‘s that are not treated, the coefficients can be recovered from those that are treated, thanks to

The value of istwfk is automatically computed by the code on the basis of the k-point coordinates and the treatment of time-reversal symmetry as specified by kptopt. One can disable the time-reversal trick in the input file by setting explicitly the value of istwfk with the syntax:

istwfk *1

The maximum number of -vectors over all k-points is called %mpw inside the code.

FFT grid and FFT box

For the generation of the density from wavefunctions, as well as for the application of the local part of the potential, one needs to be able to compute for a 3D-mesh of -points, extremely fast, from the values .


spin up and spin down parts can be treated separately in this operation, so they do not need to be specified otherwise in this section.

The FFT algorithm starts from values of a function

and compute fast the transformed


We want the values of on a FFT grid with:

The FFT algorithm has a computational cost that scales as where is the total number of points in the mesh. Note, however, that we cannot obtain everywhere but only on the discrete set of FFT points given in the above equations. The choice of is not discussed here.

For FFT efficiency (minimisation of cache conflicts), the arrays are not dimensioned with but with where:

The FFT mesh is given by ngfft. PAW requires an additional dense FFT mesh for densities and potentials called ngfftdg.

Symmetry Properties

Effect of space group symmetries on electron energies and wavefunctions

All the symmetry operations which leave the crystal unchanged constitute a space group. Besides the translation symmetry operations, a space group contains proper or improper rotations followed by an appropriate fractional displacement. There are 230 in total [Bassani1975].

A generic element of the space group will be denoted in the following with where is a real orthonormal matrix associated to a proper or improper rotation while is the corresponding fractional translation. If all the fractional translations are zero the space group is said to be symmorphic. In Abinit, the rotations in real space are called symrel, while the corresponding fractional translation are stored in the tnons array. Note that both symrel and tnons are given in reduced coordinates.

The application of a symmetry operation to a vector defining the position of an atom in the unit cell gives:

where indicates an atom in the same unit cell of the same type as which may be coincident with , and is a suitable lattice translation (possibly zero). The application of the symmetry operation on a generic function of the three spatial coordinates is conventionally defined by:

Since commutes with the Hamiltonian of the crystal, it readily follows that, given eigenstate of , also is eigenstate of the Schrödinger problem with the same eigenvalue:

Although has the same eigenenergy as , its crystalline momentum is different. The operation of the space group transforms a Bloch function with vector into a new Bloch wave function of crystalline momentum . This important property can be seen as follows:

where is an arbitrary vector of the direct Bravais lattice and the invariance of the periodic part of the Bloch wave function has been exploited.


The last equality in follows from the orthogonality of the matrix when referred to in a Cartesian frame of reference. The orthogonality of the rotation matrix does not hold anymore if, as usually done in the ABINIT code, the symmetry operations are expressed in reduced coordinates. In this case, the correct matrix to use for operations in reciprocal space is given by the transpose of . (called symrec in the Fortran code)

For a nondegenerate state, one obtains:

The above equation can be used to reduce the number of -points and matrix elements that have to be evaluated and stored since the information in the full Brillouin zone can be reconstructed by symmetry from an appropriate irreducible wedge. The set of equations below summarizes the most useful relationships commonly employed:

The time invariance of the Hamiltonian, , might introduce additional constraints:

It is important to stress that the set of equations in \ref{eq:space_group_symmetry} hold only in case of nondegenerate states. In the presence of degeneracy, the application of a symmetry operation on a Bloch wave function with momentum belonging to the set of degenerate states , produces a new eigenstate with same energy and crystalline momentum . The new eigenstate is given by an appropriate linear combination of the degenerate states with wave vector . More explicitly:

where is the unitary transformation associated with [Bassani1975]. Equation \ref{eq:symmetry_for_degenerate_states} reduces to \ref{eq:rotation_wfn} if the state is nondegenerate since, in this particular case, .

Magnetic Space Groups

An extension of the concept of symmetry is needed in order to explain the magnetic properties of crystals [Landau1984]. In addition to the spatial arrangement of atoms, the orientation of the atomic magnetic moment also becomes important in such systems. It may turn out that the usual spatial operation, while leaving the crystal unchanged in regard to its geometrical structure, will reverse the orientation of spins.

Let the symbol indicate the operation of reversing all spins, and let denote the identity operator. A combined operation consisting of an ordinary symmetry operation followed by is a new type of symmetry operation called a complementary operation. The rules for operator composition in the standard nonmagnetic group can be easily extended to include :

Magnetic groups are obtained by replacing some of the symmetry elements of the initial non-magnetic space group by their complementary operations so that the resulting ensemble forms a group with respect to the new algebra. Magnetic space groups are sometimes referred to as Shubnikov groups, and can be classified according to three different categories [Bhagavantam1964].

Shubnikov type IV
Groups which include explicitly, so-called grey groups or Shubnikov type IV (230 in number). Each group can be obtained by taking the direct product of each of the conventional space groups with the group
Shubnikov type III
Groups which do not include explicitly, but which contain complementary symmetry operations. Also called mixed groups or Shubnikov type III. There are 1191 in total.
Groups which do not include either explicitly or in conjunction with a conventional symmetry operation, also named colorless groups. There are 230 and they are indistinguishable from the conventional space groups

Henceforth, in order to keep the notation as simple as possible, a symmetry operation containing will be denoted with an underlined symbol , and will be said to have anti-ferromagnetic character. On the contrary, symmetry operations which preserve the orientation of the spin projection will be denoted using the standard notation , and will be said to have ferromagnetic character. The action of a magnetic symmetry on a nondegenerate Bloch state has to be generalized according to:

where . Using the above symmetry relations, one can verify that the two spin components of the electron density transform according to:

from which it follows that the total charge and, consequently, the Hartree potential are invariant under the application of any operation of the magnetic group. Similar symmetry relationships hold for the two components of the exchange-correlation potential.

The magnetic character of the symmetry operation is stored in the symafm array.